﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CBE.Model;
using Common.DataAccess;
using Microsoft.Data.Extensions;

namespace CBE.DataAccess
{
    public class ReporteAuditoriaVentasDataAccess : GenericReportDataAccess<ReporteAuditoriaVentasView, ReporteAuditoriaVentasCriteria, CBEEntities>
    {
        public override List<ReporteAuditoriaVentasView> ReadViewsByCriteria(ReporteAuditoriaVentasCriteria criteriaEntity)
        {
            var listOfVentas = ObjectContext.CreateStoreCommand("ReporteAuditoriaVentas", System.Data.CommandType.StoredProcedure,
                new System.Data.SqlClient.SqlParameter("@pNombreApellido", String.IsNullOrEmpty(criteriaEntity.NombreApellido) ? String.Empty : criteriaEntity.NombreApellido))
                .Materialize<ReporteAuditoriaVentasView>(r => new ReporteAuditoriaVentasView
                {
                    ID = r.Field<Guid>("ID"),
                    FechaVenta = r.Field<DateTime>("FechaVenta"),
                    Importe = r.Field<Decimal>("Importe"),
                    ImporteBonificado = r.Field<Decimal?>("ImporteBonificado"),
                    ImporteProductos = r.Field<Decimal?>("ImporteProductos"),
                    ImporteServicios = r.Field<Decimal?>("ImporteServicios"),
                    Activo = r.Field<Boolean?>("Activo"),
                    NombreApellido = r.Field<String>("NombreApellido"),

                    Fecha_Accion = r.Field<DateTime>("Fecha_Accion"),
                    Usuario_Accion = r.Field<String>("Usuario_Accion"),
                    Tipo_Accion = r.Field<String>("Tipo_Accion"),
                });

            return listOfVentas.ToList();
        }
    }
}